gtkmodifierstyle.c: Release symbolic color memory
authorXu Shaohua <shaohua@biofan.org>
Fri, 24 Jun 2022 02:04:25 +0000 (10:04 +0800)
committerXu Shaohua <shaohua@biofan.org>
Fri, 24 Jun 2022 02:05:07 +0000 (10:05 +0800)
gtk/gtkmodifierstyle.c

index 1ea54d120fa6a603febe502f6baf0b2c320120d4..3092b6c3471f883a06d6481e7c79f8462797250c 100644 (file)
@@ -226,16 +226,18 @@ _gtk_modifier_style_map_color (GtkModifierStyle *style,
 
   g_return_if_fail (GTK_IS_MODIFIER_STYLE (style));
   g_return_if_fail (name != NULL);
+  g_return_if_fail (color != NULL);
 
   priv = style->priv;
 
-  if (color)
-    symbolic_color = gtk_symbolic_color_new_literal (color);
-
-  gtk_style_properties_map_color (priv->style,
-                                  name, symbolic_color);
-
-  _gtk_style_provider_private_changed (GTK_STYLE_PROVIDER_PRIVATE (style));
+  symbolic_color = gtk_symbolic_color_new_literal (color);
+  if (symbolic_color)
+    {
+      gtk_style_properties_map_color (priv->style,
+                                      name, symbolic_color);
+      gtk_symbolic_color_unref (symbolic_color);
+      _gtk_style_provider_private_changed (GTK_STYLE_PROVIDER_PRIVATE (style));
+    }
 }
 
 void